package jdx_06_volatile;

import java.util.concurrent.TimeUnit;

public class T2 {
    volatile boolean running = true;//【实验二】用volatile修饰

    void m(){
        System.out.println("m start ...");
        while (running){
            //依旧不加任何的沉睡代码，直接死循环
        }
        System.out.println("m ending ...");
    }


    public static void main(String[] args) {
        //开始运行上面的程序
        T2 t = new T2();
        new Thread(()->{
            t.m();
        }).start();

        try {
            TimeUnit.SECONDS.sleep(3);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        t.running = false;

    }
}

/*

和T1的实验不同的是：3秒之后，代码停止的运行，达到了理想的目标，这是为什么？

 */
